import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('../../data/train.csv')
# print(data.head())
# print(data.info())
data_num = data.select_dtypes(include=['number'])
# # print(data_num.info())
# data_num.to_excel('./output.xlsx', sheet_name='Sheet1', index=False)

# 设置图片清晰度和中文字体
plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['figure.dpi'] = 300


# 定义特征列，排除标签列
feature_columns = data_num.columns[data_num.columns != 'Attrition']

# 为每个特征创建单独的折线图
for feature in feature_columns:
    # 计算该特征不同值的流失比例
    cross_tab = pd.crosstab(data_num[feature], data_num['Attrition'])
    cross_tab['流失比例'] = cross_tab[1] / (cross_tab[0] + cross_tab[1])

    # 创建画布
    plt.figure(figsize=(10, 6))

    # 绘制折线图
    plt.plot(cross_tab.index, cross_tab['流失比例'], marker='o', linestyle='-', color='b')

    # 设置图表属性
    plt.xlabel(f'{feature} 取值')
    plt.ylabel('流失比例')
    plt.title(f'{feature} 不同取值下的人员流失比例')
    plt.grid(True, linestyle='--', alpha=0.7)

    # 保存图片
    filename = f'../../data/picture/{feature}_attrition_rate.png'
    plt.savefig(filename)
    plt.close()  # 关闭当前图表，避免重叠

print(f"已为所有 {len(feature_columns)} 个特征生成单独的折线图，保存至当前路径")


















